package javase_class_250908;

/**
 * ClassName: AnonymousExample
 * Package: javase_class_250908
 * Description:
 *
 * @Author harkjeans
 * @Create 2025/9/8 19:34
 * @Version 1.0
 */
interface Greeting {
    void greet();
}

public class AnonymousExample {
    public static void main(String[] args) {
        // 传统方式：创建一个实现Greeting接口的具名类，然后实例化
        // 匿名内部类方式：直接实例化接口并提供实现
        Greeting greeting = new Greeting() { // 开始匿名内部类的定义
            @Override
            public void greet() { // 实现接口的方法
                System.out.println("Hello from Anonymous Inner Class!");
            }
            // 还可以添加额外的字段和方法（但外部无法访问）
        }; // 注意分号，这是一个表达式

        greeting.greet();

        // 更常见的用法：作为方法参数
        Thread thread = new Thread(new Runnable() { // Runnable是一个接口
            @Override
            public void run() {
                System.out.println("Thread is running.");
            }
        });
        thread.start();

        // Java 8+ 使用Lambda表达式替代，简洁得多
        Thread lambdaThread = new Thread(() -> System.out.println("Lambda Thread is running."));
        lambdaThread.start();
    }
}
